/**
 * RunningHub API 测试脚本
 * 
 * 此脚本用于测试 RunningHub API 代理服务器的功能
 * 使用方法: node test-api.js
 */

const fetch = require('node-fetch');

// 配置信息
const CONFIG = {
  // 代理服务器地址
  proxyUrl: 'http://localhost:3000',
  // API密钥 (请替换为您的实际API密钥)
  apiKey: '4067f5cbd5da40359602adaa342ab82c',
  // 工作流ID
  workflowId: '1904136902449209346'
};

/**
 * 测试 POST /task/openapi/create API
 */
async function testCreateTask() {
  console.log('测试创建任务 API...');
  
  try {
    // 构建请求体
    const requestBody = {
      apiKey: CONFIG.apiKey,
      workflowId: CONFIG.workflowId,
      // 自定义节点参数示例 (根据实际工作流调整)
      nodeInfoList: [
        {
          nodeId: '6', // 假设这是提示词节点ID
          fieldName: 'text',
          fieldValue: 'DreamWork 3D Style, a cute panda holding a bamboo in hands at sunset, highly detailed'
        }
      ]
    };
    
    // 发起POST请求
    const response = await fetch(`${CONFIG.proxyUrl}/task/openapi/create`, {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      body: JSON.stringify(requestBody)
    });
    
    // 解析响应
    const data = await response.json();
    
    // 输出结果
    console.log('状态码:', response.status);
    console.log('响应数据:', JSON.stringify(data, null, 2));
    
    // 检查是否成功
    if (response.ok) {
      console.log('✅ 创建任务成功!');
      // 如果有任务ID，可以后续查询任务状态
      if (data.data && data.data.taskId) {
        console.log(`任务ID: ${data.data.taskId}`);
      }
    } else {
      console.log('❌ 创建任务失败!');
    }
  } catch (error) {
    console.error('请求错误:', error.message);
  }
}

/**
 * 主函数
 */
async function main() {
  console.log('开始测试 RunningHub API...');
  
  // 首先检查代理服务器是否正常运行
  try {
    const response = await fetch(`${CONFIG.proxyUrl}/test`);
    const data = await response.json();
    
    if (response.ok && data.status === 'ok') {
      console.log('✅ 代理服务器运行正常');
      
      // 测试创建任务API
      await testCreateTask();
    } else {
      console.error('❌ 代理服务器未正常响应!');
    }
  } catch (error) {
    console.error('无法连接到代理服务器:', error.message);
    console.log('请确保代理服务器已启动，运行: npm start');
  }
}

// 执行主函数
main().catch(console.error); 